import Vue from "vue";
import VueRouter from "vue-router";

import Login from "@/components/Login.vue";
import Home from "@/components/Home.vue";
import Welcome from "@/components/Welcome.vue";
import Users from "@/components/user/Users.vue";
import Rights from "@/components/auth/Rights.vue";
import Roles from "@/components/auth/Roles.vue";
import Category from "@/components/goods/Category.vue";
import CateParams from "@/components/goods/CateParams.vue";
import GoodsList from "@/components/goods/GoodsList.vue";
import Add from "@/components/goods/Add.vue";
import Order from "@/components/order/Order.vue";
import Report from "@/components/report/Report.vue";

Vue.use(VueRouter);

const router = new VueRouter({
  routes: [
    {
      path: "/",
      redirect: "/login",
    },
    {
      path: "/login",
      component: Login,
    },
    {
      path: "/home",
      redirect: "/welcome",
      component: Home,
      children: [
        { path: "/welcome", component: Welcome },
        { path: "/users", component: Users },
        { path: "/rights", component: Rights },
        { path: "/roles", component: Roles },
        { path: "/categories", component: Category },
        { path: "/params", component: CateParams },
        { path: "/goods", component: GoodsList },
        { path: "/goods/add", component: Add },
        { path: "/orders", component: Order },
        { path: "/reports", component: Report },
      ],
    },
  ],
});

router.beforeEach((to, from, next) => {
  if (to.path === "/login") return next();
  const token = sessionStorage.getItem("token");
  if (token) return next();
  next("/login");
});

export default router;
